#include "CurrentThread.h"


namespace CurrentThread
{
    //每个线程都有自己的线程id
    //这里定义（并分配内存）了前面声明为extern的变量。
    //每个线程都有其自己独立的t_cachedTid副本，这意味着每个线程可以独立地更改自己的副本而不会影响其他线程。
    __thread int t_cachedTid = 0;

    void cachedTid()
    {
        if(t_cachedTid == 0)
        {
            //通过linux系统调用获取当前线程tid值
            t_cachedTid = static_cast<pid_t>(::syscall(SYS_gettid));
        }
    }
}